package com.acumenvn.pent.Utils;

import com.acumenvn.pent.Utils.ConfigurationService;

public class GameInformation {
	private static GameInformation instance = null;
	private ConfigurationService config;
	
	public static final GameInformation getInstance() {
        if (instance == null) {
            instance = new GameInformation();
            instance.loadProperties();
        }
        return instance;
    }
	
	private void loadProperties() {
		config = new ConfigurationService();
	}
	
	public GameInformation() {
		// TODO Auto-generated constructor stub
	}
	
	public int getSizeTile() {
		return config.getInt("SIZE_TILE");
	}
	
	public int getWindowWidth() {
		return config.getInt("WINDOW_WIDTH");
	}
	
	public int getWindowHeight() {
		return config.getInt("WINDOW_HEIGHT");
	}
	
	public String getGameTitle() {
		return config.getString("APPNAME");
	}
	
	// Prinny
	public float getPrinnyAccelerationX() {
		return config.getFloat("PRINNY_ACCELERATION_X");
	}
	
	public float getPrinnyAccelerationY() {
		return config.getFloat("PRINYY_ACCELERATION_Y");
	}
	
	public float getPrinnyMaxVelocity() {
		return config.getFloat("PRINNY_MAX_VELOCITY");
	}
	
	public float getPrinnyFriction() {
		return config.getFloat("PRINNY_FRICTION");
	}
	
	public float getPrinnyJumpVelocity() {
		return config.getFloat("PRINNY_JUMP_VELOCITY");
	}

	/****************************************************
	 * 			GET UNITS IN GAME						*
	 ***************************************************/
	// Blank Unit
	public char getUnit_Blank() {
		return config.getString("UNIT_BLANK").charAt(0);
	}
	
	// Static unit
	public char getUnit_Static() {
		return config.getString("UNIT_STATIC").charAt(0);
	}
	
	// Save Unit
	public char getUnit_Save() {
		return config.getString("UNIT_SAVE").charAt(0);
	}
	
	// Begin Unit
	public char getUnit_Begin() {
		return config.getString("UNIT_BEGIN").charAt(0);
	}
	
	// Destruction unit
	
	public char getUnit_Destruction() {
		return config.getString("UNIT_DESTRUCTION").charAt(0);
	}
	
	// UNIT_END
	
	public char getUnit_End() {
		return config.getString("UNIT_END").charAt(0);
	}
	
	// UNIT_LEFTRIGHT
	public char getUnit_LeftRight() {
		return config.getString("UNIT_LEFTRIGHT").charAt(0);
	}
	
	// UNIT_TOPBOTTOM
	public char getUnit_TopBottom() {
		return config.getString("UNIT_TOPBOTTOM").charAt(0);
	}
	
	// UNIT_GRASS1
	public char getUnit_Grass1() {
		return config.getString("UNIT_GRASS1").charAt(0);
	}
	
	// UNIT_GRASS2
	public char getUnit_Grass2() {
		return config.getString("UNIT_GRASS2").charAt(0);
	}
	
	// UNIT_GROUND1
	public char getUnit_Ground1() {
		return config.getString("UNIT_GROUND1").charAt(0);
	}
	
	// UNIT_GROUND2
	public char getUnit_Ground2() {
		return config.getString("UNIT_GROUND2").charAt(0);
	}
	
	// UNIT_BACKGROUND1
	public char getUnit_Background1() {
		return config.getString("UNIT_BACKGROUND1").charAt(0);
	}
	
	// UNIT_BACKGROUND2
	public char getUnit_Background2() {
		return config.getString("UNIT_BACKGROUND2").charAt(0);
	}
	
	// UNIT_ROCK1
	public char getUnit_Rock1() {
		return config.getString("UNIT_ROCK1").charAt(0);
	}
	
	// UNIT_MONSTER1
	public char getUnit_Monster1() {
		return config.getString("UNIT_MONSTER1").charAt(0);
	}
	
	// UNIT_MONSTER2
	public char getUnit_Monster2() {
		return config.getString("UNIT_MONSTER2").charAt(0);
	}
	
	// UNIT_MONSTER3
	public char getUnit_Monster3() {
		return config.getString("UNIT_MONSTER3").charAt(0);
	}
	
	// UNIT_FIRE1
	public char getUnit_Fire1() {
		return config.getString("UNIT_FIRE1").charAt(0);
	}
	
	// UNIT_TRAP
	public char getUnit_Trap() {
		return config.getString("UNIT_TRAP").charAt(0);
	}
	
	// UNIT_GROUND1M2
	public char getUnit_Ground1M2() {
		return config.getString("UNIT_GROUND1M2").charAt(0);
	}
	
	// UNIT_GRASS1M2
	public char getUnit_Grass1M2() {
		return config.getString("UNIT_GRASS1M2").charAt(0);
	}
	
	// UNIT_GRASS2M2
	public char getUnit_Grass2M2() {
		return config.getString("UNIT_GRASS2M2").charAt(0);
	}
	
	// UNIT_ROCKM2
	public char getUnit_RockM2() {
		return config.getString("UNIT_ROCKM2").charAt(0);
	}
	
	// UNIT_CLOUD
	public char getUnit_Cloud() {
		return config.getString("UNIT_CLOUD").charAt(0);
	}
}
